1
C++配列の進化
AI013Lesson 4
00:00

次の変化は Cスタイルの配列 から std::array は、次のような根本的な転換を示しています 型安全性 および ジェネリックプログラミング 現代C++におけるものです。

1. ポインタのデキャイ問題

レガシーな配列(int arr[N])は「ポインタのデキャイ」に苦しんでいます。関数に渡されたとき、サイズのメタデータを失い、生のポインタ(int*)に変換されます。これは安全でないポインタ演算やバッファオーバーフローを引き起こします。

2. C++11による近代化

std::array は、 ゼロオーバーヘッドのラッパー 生の配列の周りに薄く包み込みます。STL(標準テンプレートライブラリ)と統合しながら、 5ルールを尊重しています。

C++11以前(レガシー)T[N]デキャイC++11以降(現代)std::array<T, N>+ std::forward(効率性)

3. std::forwardによるパーフェクトフォワーディング

C++11では std::forward を導入し、 std::array オブジェクトがテンプレートラッパーを通じて重複コピーされることなく移動することを保証しました。 参照のコラプス規則参照のコラプス規則を利用することで、オブジェクトの値カテゴリ(左辺値と右辺値)を保持します。

$$T\&\& + \& \rightarrow T\&$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>